(function ($) { 'use strict'; /** * Drupal FieldGroup object. */ Drupal.FieldGroup = Drupal.FieldGroup || {}; Drupal.FieldGroup.Effects = Drupal.FieldGroup.Effects || {}; Drupal.FieldGroup.groupWithfocus = null; Drupal.FieldGroup.setGroupWithfocus = function (element) { element.css({display: 'block'}); Drupal.FieldGroup.groupWithfocus = element; }; /** * Behaviors. */ Drupal.behaviors.fieldGroup = { attach: function (context, settings) { settings.field_group = settings.field_group || drupalSettings.field_group; if (typeof settings.field_group === 'undefined') { return; } // Execute all of them. $.each(Drupal.FieldGroup.Effects, function (func) { // We check for a wrapper function in Drupal.field_group as // alternative for dynamic string function calls. var type = func.toLowerCase().replace('process', ''); if (typeof settings.field_group[type] !== 'undefined' && $.isFunction(this.execute)) { this.execute(context, settings, settings.field_group[type]); } }); // Add a new ID to each fieldset. $('.group-wrapper fieldset').each(function () { // Tats bad, but we have to keep the actual id to prevent layouts to break. var fieldgroupID = 'field_group-' + $(this).attr('id') + ' ' + $(this).attr('id'); $(this).attr('id', fieldgroupID); }); // Set the hash in url to remember last userselection. $('.group-wrapper ul li').each(function () { var fieldGroupNavigationListIndex = $(this).index(); $(this).children('a').click(function () { var fieldset = $('.group-wrapper fieldset').get(fieldGroupNavigationListIndex); // Grab the first id, holding the wanted hashurl. var hashUrl = $(fieldset).attr('id').replace(/^field_group-/, '').split(' ')[0]; window.location.hash = hashUrl; }); }); } }; })(jQuery);